草庐IT

python - Tornado 中的单元测试

全部标签

ruby - 如何在不转换为不同编码的情况下替换 Ruby 中的 UTF-8 错误?

为了将字符串转换为UTF-8并替换所有编码错误,您可以这样做:str.encode('utf-8',:invalid=>:replace)唯一的问题是如果str已经是UTF-8则它不起作用,在这种情况下仍然存在任何错误:irb>x="foo\x92bar".encode('utf-8',:invalid=>:replace)=>"foo\x92bar"irb>x.valid_encoding?=>false引用RubyDocs:Pleasenotethatconversionfromanencodingenctothesameencodingencisano-op,i.e.therec

ruby-on-rails - 如何使用 Test::Unit 跳过某些测试

在我的一个项目中,我需要与多个后端系统协作。其中一些缺少文档,部分原因是我有一些测试代码与一些测试服务器交互,只是为了查看一切都按预期工作。但是,访问这些服务器非常慢,因此我不想在每次运行测试套件时都运行这些测试。我的问题是如何处理您想跳过某些测试的情况。目前我使用一个环境变量“BACKEND_TEST”和一个条件语句来检查是否为我想跳过的每个测试设置了变量。但有时我想跳过测试文件中的所有测试,而不必在每个测试的开头添加额外的行。需要与测试服务器交互的测试并不多,因为我在其他情况下使用flexmock。但是,您不能mock自己远离现实。从这个问题的标题可以看出,我使用的是Test::U

ruby-on-rails - 测试驱动开发?精神 split 症?我糊涂了!我应该使用什么进行测试,为什么?

是的,我开始做这个测试了!但是我不知道该用什么=/Rspec+应该吗?Rspec+牛排?迷你测试?cucumber?capybara?可以吗?(cucumber与Shoulda混合)迷你应该吗?(Minitest与Shoulda混合)啊,这么多选择!我很困惑你们用什么,为什么? 最佳答案 如果您刚刚开始,您应该使用默认值并遵循theofficialguides.重要的是你要练习测试。您使用哪种测试库/框架并不重要——这是一种风格选择,在实际练习测试中是次要的——开始测试Rails应用程序的最简单方法是遵循“Golden官方指南布局的

ruby-on-rails - 如何在 Capybara 测试中用 Rspec 淘汰 Warden/Devise

我想在我的Rails应用程序的Capybara测试套件中使用rspec模拟来阻止登录用户(使用Devise/Warden)。这将节省大量时间,并且意味着我的测试套件可以/将会定期运行。以前,我可以使用authlogic来完成此操作,方法是使用如下代码删除我的session模型:deflogin(user)user_session=mock_model(UserSession,{:user=>user})UserSession.stub(:find).and_return(user_session)end现在我正在使用Devise,我不再有权访问UserSession对象。由于我正在使用

ruby-on-rails - Rails/Rspec JSON 整数在测试后调用时被转换为字符串

我正在测试对我们API的JSON请求,它将以JSON响应。似乎JSON中的所有整数都被转换为字符串,因为我们将它们发布到Controller考虑操作。Controllerdefconsiderbinding.pry#bindingno#2usedtochecktheparamsafterpostfromtest.ifParametersValidator.is_valid?(params)application_handler=ApplicationHandler.new(request_interactor)renderjson:application_handler.resulte

ruby - ruby 中的线程安全外部进程,以及检查退出状态

我想在Ruby中运行一段调用外部程序的线程安全脚本,然后检查该外部程序的退出状态。最好的方法是什么?到目前为止,我一直在检查$?,但我认为我遇到了与程序其他部分的竞争条件。下面是一些示例代码:Thread.newdo`external_program`if$?.exitstatus==0#itworked.else#itdidn'twork.endend理想情况下,我会做类似的事情Process.new(`external_program`).exitstatus因此exitstatus与that进程密不可分,而不是恰好完成的最后一个进程。有什么办法吗? 最

Ruby:1.9 中的 parsedate 去哪儿了?

我相信旧版本的ruby​​带有一个parsedate模块,允许最佳猜测传递日期/时间字符串。这似乎不在ruby​​1.9中——其他地方是否有等效的功能? 最佳答案 我自己也有同样的问题。查看1.8源代码parsetime使用另一个仍然存在的模块。以下内容适用于我使用从FreeBSD上的端口构建的Ruby1.9。require'date/format'require'time'text="TueJun2811:582011"array=Date._parse(text,false).values_at(:year,:mon,:mday

ruby-on-rails - 如何访问 Capistrano 中的服务器特定选项?

我正在尝试将Capistrano配置为在两台不同的服务器上执行相同的任务,每台服务器都有不同的凭据。我想做一些类似的事情:namespace:deploydorole:db,"192.168.1.1",:credentials=>"db1.yml"role:db,"192.168.1.1",:credentials=>"db2.yml"task:mytask,:roles=>:dbdocredentials=YAML.load_file(something)...这可能吗?为了访问当前服务器配置,我应该用什么替换something? 最佳答案

ruby - 如何将类名作为变量传递给ruby中的另一个类

我正在尝试学习用ruby​​创建一个多类程序。我编写了一个引擎类和一些其他类,如城市、街道等,但在将类名作为变量传递给其他类时遇到了问题。下面的代码抛出错误:“City.rb:15:in'intro':undefinedlocalvariableormethodgame'for#(NameError)”。我在某种程度上理解这个问题,但我认为这个城市不需要知道任何关于游戏对象,我认为它只需要获取它并将其传回即可。但表面上我对如何在类之间传递变量(尤其是类名)有误解。我的设计有什么问题?#Game.rbrequire'./City.rb'classEnginedefinitialize(c

ruby - 测试散列是否包含特定键以及这些键的值是否不为零

我如何使用RSpec测试方法返回包含特定键的散列并且这些键的值不为nil? 最佳答案 我会写:describeMyObjectdodescribe"#my_method"dosubject(:my_method){MyObject.new.my_method}it{is_expected.tobe_a_kind_of(Hash)}specify{expect(my_method.keys).toinclude(:key1,:key2)}specify{expect(my_method.values).not_toinclude(ni